﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TreeSharp;
using Styx.WoWInternals.WoWObjects;
using Styx;

namespace FelMaster.Classes
{
    public abstract class TalentBase
    {
        public static readonly SimCraftBase SC = SimCraftBase.Instance;
        public static readonly GroupBase GB = GroupBase.Instance;
        public static LocalPlayer Me { get { return StyxWoW.Me; } }
        public static WoWUnit Pet { get { return StyxWoW.Me.Pet; } }

        public abstract string KeySpell { get; }

        public abstract Composite SingleRotation { get; }
        public abstract Composite PVPRotation { get; }
        public abstract Composite PVERotation { get; }

        public abstract Composite Buffs { get; }

        public abstract string Name { get; }

        //allows dev to add some description or help about cooldown management to its implementation
        public virtual string Help
        {
            get
            {
                return "There is currently no help available for this rotation.";
            }
        }

        //this is used by the moving/facing behavior
        //computed as distance to target's bounding box
        public virtual float CombatMinDistance { get { return 1f; } }
        public virtual float CombatMaxDistance { get { return 40f; } }
    }
}
